<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
		 pageEncoding="UTF-8"%>
<%@ page isELIgnored ="false" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="input" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<form action="/test/testConversionServiceConverer" method="post">
		<%--lastname-email-gender-department.id 例如：GG-gg@mdl.com-0-105--%>
		Employee:<input type="text" name="employee">
		<input type="submit" value="Submit"/>
	</form>
	<br>
	<%--
	1.why使用form标签呢？
	可以更快速的开发出表单页面，而且可以更方便的进行表单值得回显
	2.注意：
	可以通过modelAttribute属性指定绑定的模型属性，
	若没有指定该属性，则默认从request域对象中读取command的表单bean，
	如果该属性值也不存在，则会发生错误。
	--%>
	<form:form action="${pageContext.request.contextPath}/emp" method="POST" modelAttribute="employee">

<%--		<form:errors path="*"></form:errors><br>--%>

		<c:if test="${employee.id ==null}">
			<%--path属性对应html表单标签得name属性值--%>
			LastName:<form:input path="lastName"/><form:errors path="lastName"></form:errors><br>
		</c:if>
		<c:if test="${employee.id !=null}">
			<form:hidden path="id"/>
			<%--<form:hidden path="_method" value="PUT" >--%>
			<%--对于_methood不能使用form:hidden标签，因为modelAttribute对应的bean中没有_method这个属性--%>
			<%--
			应该用
			<input type="hidden" name="_method" value="PUT"/>
			--%>
		</c:if>
		Email:<form:input path="email"/><form:errors path="email"></form:errors><br>
		<%
			Map<String,String> genders = new HashMap<>();
			genders.put("1","Male");
			genders.put("0","Female");

			request.setAttribute("genders",genders);
		%>
		Gender:<form:radiobuttons path="gender" items="${genders}"/><br>
		Department:<form:select path="department.id"
			items="${departments}" itemLabel="departmentName" itemValue="id"></form:select><br>
		<%--
			1.数据类型转换
			2.数据类型格式化
			3.数据校验。
			如何校验？注解？
			①使用JSR 303校验标准
			②需要加入Hibernate Validator验证框架
			③在配置文件中加入<mvc:annotation-driven/>
			④需要在bean的属性上添加对应的注解
			⑤在目标方法bean类型的前边添加@Valid注解
			校验出错转向哪一个页面？
			注意：需要校验的Bean对象和其绑定结果对象或错误对象是成对出现的，他们之间不允许声明其他的入参
			错误消息？如何显示，如何把错误消息进行国际化
		--%>
		Birth:<form:input path="birth" /><form:errors path="birth"></form:errors><br>
		Salary:<form:input path="salary" /><form:errors path="salary"></form:errors><br>
		<input type="submit" value="Submit"/>
	</form:form>
</body>
</html>